package com.xiyu.service.vo.office.space;

import com.xiyu.service.vo.office.space.baseVO.OfficeSpaceBase;
import com.xiyu.service.vo.office.building.baseVO.OfficeBuildingFloorBase;
import com.xiyu.service.vo.unit.unit.baseVO.UnitUnitBase;
import com.xiyu.service.vo.office.building.baseVO.OfficeBuildingUnitBase;
import com.xiyu.service.vo.office.building.baseVO.OfficeBuildingBase;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import jakarta.validation.Valid;
import com.xiyu.service.enums.common.CommonStatusEnum;
import com.xiyu.service.framework.validation.InEnum;
import org.springframework.format.annotation.DateTimeFormat;
import static com.xiyu.service.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
import java.time.LocalDateTime;

@Schema(description = "分页查询办公用房")
@Data
public class SpacePageQueryOutput extends OfficeSpaceBase {

    @Schema(description = "办公用房主键ID")
    private Long id;

    @Schema(description = "办公楼楼层")
    @Valid
    private buildingFloor buildingFloor;

    @Schema(description = "办公单位")
    @Valid
    private unit unit;

    @Schema(description = "更新时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime updateTime;

    @Schema(description = "办公楼单元")
    @Valid
    private buildingUnit buildingUnit;

    @Schema(description = "办公楼")
    @Valid
    private building building;

    @Schema(description = "创建时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime createTime;

    @Schema(description = "办公楼")
    @Data
    public static class building extends OfficeBuildingBase {
    }

    @Schema(description = "办公楼单元")
    @Data
    public static class buildingUnit extends OfficeBuildingUnitBase {
    }

    @Schema(description = "办公单位")
    @Data
    public static class unit extends UnitUnitBase {
    }

    @Schema(description = "办公楼楼层")
    @Data
    public static class buildingFloor extends OfficeBuildingFloorBase {
    }
}